home *** CD-ROM | disk | FTP | other *** search
/ Alpha CD-ROM Bonus Pack / Alpha CD-ROM Bonus Pack.iso / clipconn / disk1 / shopper.ms_ / shopper.ms
Encoding:
Text File  |  1994-03-24  |  6.1 KB  |  260 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Clip-Art Connection Setup
  3. '**************************************************************************
  4.  
  5. '$NODEFINE DEBUG
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST APPHELP       = 900
  18. CONST DIREXIST      = 1000
  19. CONST DISKSPACE     = 1200
  20. CONST BADPATH       = 6400
  21. CONST MODELESS        = 5000
  22. CONST MODELESS2     = 1400
  23.  
  24. ''Bitmap ID
  25. CONST LOGO = 1
  26.  
  27. CONST SW_SHOWMAXIMIZED =  3
  28.  
  29. GLOBAL DEST$        ''Default destination directory.
  30. GLOBAL SrcDir$      'setup src dir
  31. GLOBAL ReadMe$      'the readme file
  32.  
  33. ''This is a counter to detect if a dialog is already displayed
  34.  
  35. DLGISUP% = 0
  36.  
  37. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  38.  
  39. DECLARE FUNCTION ShowWindow LIB "user" (hwnd%, flag%) AS INTEGER
  40. DECLARE FUNCTION ShellExecute LIB "shell.dll" (hwnd%, lpOperation$, lpFile$, lpParameters$, lpDirectory$, iShowCmd% ) AS INTEGER
  41.  
  42. INIT:
  43.  
  44. '$IFDEF DEBUG
  45.     OpenLogFile "C:\proj\clipcon\setup\layout\setup.log", 0
  46. '$ENDIF 'DEBUG
  47.  
  48.     hwnd = HwndFrame()
  49.     n = ShowWindow( hwnd, SW_SHOWMAXIMIZED )
  50.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  51.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  52.  
  53.     SetBitmap CUIDLL$, LOGO
  54.     SetTitle "Clip-Art Connection Setup"
  55.     ReadMe$ = "readme.wri"
  56.  
  57.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  58.     IF szInf$ = "" THEN
  59.        szInf$ = GetSymbolValue("STF_CWDDIR") + "SHOPPER.INF"
  60.     END IF
  61.     ReadInfFile szInf$
  62.  
  63.  
  64. WELCOME:
  65.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  66.     IF sz$ = "CONTINUE" THEN
  67.        UIPop 1
  68.     ELSE
  69.        GOSUB ASKQUIT
  70.        GOTO WELCOME
  71.     END IF
  72.  
  73.  
  74. GETPATH:
  75.  
  76.     ClearCopyList
  77.     
  78.     DEST$ = "C:\CLIPCON"
  79.  
  80.     SetSymbolValue "EditTextIn", DEST$
  81.     SetSymbolValue "EditFocus", "END"
  82.  
  83. GETPATHL1:
  84.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  85.     
  86.     DEST$ = GetSymbolValue("EditTextOut")
  87.  
  88.     IF sz$ = "CONTINUE" THEN
  89.         IF IsDirWritable(DEST$) = 0 THEN
  90.             GOSUB BADPATH
  91.             GOTO GETPATHL1
  92.         END IF
  93.         UIPop 1
  94.  
  95.     ELSEIF sz$ = "REACTIVATE" THEN
  96.         GOTO GETPATHL1
  97.     
  98.     ELSEIF sz$ = "BACK" THEN
  99.          UIPop 1
  100.          GOTO WELCOME
  101.     
  102.     ELSE
  103.        GOSUB ASKQUIT
  104.     GOTO GETPATH
  105.     END IF
  106.  
  107. ''**
  108. ''** See if a previous installation exists
  109. ''**
  110.  
  111. ''check for directory
  112.     
  113.     Directory% = DoesDirExist(DEST$)
  114.  
  115.     IF Directory% > 0 THEN
  116.         sz$ = UIStartDlg(CUIDLL$, DIREXIST, "FInfoDlgProc", APPHELP, HELPPROC$)
  117.         
  118.         IF sz$ = "CONTINUE" THEN
  119.          
  120.             UIPop 1
  121.     
  122.           ELSEIF sz$ = "REACTIVATE" THEN
  123.             
  124.             UIPop 1
  125.             GOTO GETPATHL1
  126.             
  127.         ELSEIF sz$ = "BACK" THEN
  128.             UIPop 1
  129.             
  130.             GOTO GETPATH
  131.             
  132.         ELSE
  133.             UIPop 1
  134.             GOSUB ASKQUIT
  135.             GOTO GETPATH
  136.         END IF
  137.     END IF
  138.  
  139. ''Put up modeless dialog while files are being copied
  140.  
  141.     ''sz$ = UIStartDlg(CUIDLL$, MODELESS, "FModelessDlgProc", APPHELP, HELPPROC$)
  142.      
  143.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  144.     CreateDir DEST$, cmoNone
  145.     DATABASE$ = MAKEPATH(DEST$,"DATA")
  146.     CreateDir DATABASE$, cmoNone
  147.     THUMB$ = MAKEPATH(DEST$,"THUMB")
  148.     CreateDir THUMB$, cmoNone
  149.     CLIPS$ = MAKEPATH(DEST$,"CLIPS")
  150.     CreateDir CLIPS$, cmoNone
  151.  
  152.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  153.     AddSectionFilesToCopyList "DATABASE", SrcDir$, DEST$
  154.     AddSectionFilesToCopyList "THUMB", SrcDir$, DEST$
  155.     
  156. '**
  157. '** Check for free disk space
  158. '**
  159.  
  160.     StillNeed& = GetCopyListCost("", "", "")
  161.  
  162.     IF StillNeed& > 0 THEN
  163.  
  164.       i% = DoMsgBox("There is not enough disk space on the specified drive.  Please free up at least "+str$(StillNeed&)+" bytes or choose another drive and try again.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  165.  
  166.       GOTO GETPATH
  167.     END IF
  168.  
  169.     CopyFilesInCopyList
  170.  
  171. ''Remove modeless
  172.  
  173.     ''UIPop 1
  174.  
  175.     CreateProgmanGroup "ConnectSoft","", cmoNone
  176.     ShowProgmanGroup   "ConnectSoft", 1, cmoNone
  177.     CreateProgmanItem  "ConnectSoft", "Clip-Art Connection", MakePath(DEST$,"shopper.exe"),"", cmoOverwrite
  178.     CreateProgmanItem  "ConnectSoft", "Clip-Art Connection Read Me", MakePath( DEST$, ReadMe$ ),"", cmoOverwrite
  179.  
  180.     ClearCopyList
  181.  
  182. '$IFDEF DEBUG
  183.     CloseLogFile
  184. '$ENDIF 'DEBUG
  185.  
  186. QUIT:
  187.     ON ERROR GOTO ERRQUIT
  188.  
  189.     IF ERR = 0 THEN
  190.     dlg% = EXITSUCCESS
  191.     ELSEIF ERR = STFQUIT THEN
  192.     dlg% = EXITQUIT
  193.     ELSE
  194.     dlg% = EXITFAILURE
  195.     END IF
  196. QUITL1:
  197.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  198.     IF sz$ = "REACTIVATE" THEN
  199.             GOTO QUITL1
  200.     END IF
  201.     UIPop 1
  202.  
  203.     IF dlg% = EXITSUCCESS THEN
  204.        sz$ = DEST$ + "\" + ReadMe$
  205.         i% = ShellExecute( NULL, NULL, sz$, NULL, DEST$, SW_SHOWMAXIMIZED )
  206.     END IF
  207.  
  208.     END
  209.  
  210. ERRQUIT:
  211.     i% = DoMsgBox("Setup sources were corrupted, call 800-234-9497!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  212.     END
  213.  
  214. BADPATH:
  215.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  216.     IF sz$ = "REACTIVATE" THEN
  217.     GOTO BADPATH
  218.     END IF
  219.     UIPop 1
  220.     RETURN
  221.  
  222.  
  223.  
  224. ASKQUIT:
  225.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  226.  
  227.     IF sz$ = "EXIT" THEN
  228.     UIPopAll
  229.     ERROR STFQUIT
  230.     ELSEIF sz$ = "REACTIVATE" THEN
  231.     GOTO ASKQUIT
  232.     ELSE
  233.     UIPop 1
  234.     END IF
  235.     RETURN
  236.  
  237.  
  238.  
  239. '**
  240. '** Purpose:
  241. '**     Appends a file name to the end of a directory path,
  242. '**     inserting a backslash character as needed.
  243. '** Arguments:
  244. '**     szDir$  - full directory path (with optional ending "\")
  245. '**     szFile$ - filename to append to directory
  246. '** Returns:
  247. '**     Resulting fully qualified path name.
  248. '*************************************************************************
  249. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  250.     IF szDir$ = "" THEN
  251.     MakePath = szFile$
  252.     ELSEIF szFile$ = "" THEN
  253.     MakePath = szDir$
  254.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  255.     MakePath = szDir$ + szFile$
  256.     ELSE
  257.     MakePath = szDir$ + "\" + szFile$
  258.     END IF
  259. END FUNCTION
  260.